package cn.coisini.service;

import cn.coisini.model.common.dtos.Result;
import cn.coisini.model.common.enums.ResultEnum;
import cn.coisini.model.pojo.Tag;
import cn.coisini.model.vo.QueryVo;
import cn.coisini.model.vo.TagVo;

import java.util.List;
import java.util.Map;

/**
 * @author xiangshaw
 * Description: 标签接口
 */
public interface TagService {
    // 根据名称查询标签
    Tag findByName(String tagName);
    // 根据id查询标签名称
    Tag findById(String id);
    // 根据ids查询标签名称
    Result<List<Tag>> findByIds(List<String> ids);
    // 新增标签
    Result<ResultEnum> addTag(TagVo tagVo);
    // 查询标签列表
    Result<Object> getTagList(QueryVo queryVo);
    // 发布文章获取标签列表
    Result<List<Tag>>  getTagList();
    // 修改标签
    Result<ResultEnum> updateTag(TagVo tagVo);
    // 删除标签
    Result<ResultEnum> deleteTag(String id);
    // 批量删除标签
    Result<ResultEnum> deleteTagByIds(List<String> ids);

    // 根据文章ids查询标签名称
    Map<String, List<TagVo>> getTagNamesByArticleIds(List<String> articleIds);
}
